package com.campus.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.campus.common.core.domain.AjaxResult;
import com.campus.pojos.domain.dto.PhoneAccountDto;
import com.campus.pojos.domain.dto.UserDto;
import com.campus.pojos.domain.dto.UserQueryDto;
import com.campus.pojos.domain.vo.UserLoginVo;
import com.campus.pojos.domain.vo.UserVo;
import com.campus.result.Result;
import com.campus.pojos.domain.dto.UserAccountDto;
import com.campus.pojos.domain.ClientUser;

import javax.servlet.http.HttpSession;
import java.util.List;


public interface UserService extends IService<ClientUser> {

    /**
     * C端用户登录
     * @param dto
     * @return
     */
    public Result<UserLoginVo> login(UserAccountDto dto);

    /**
     * C端用户注册
     * @param dto
     * @return
     */
    public Result register(UserAccountDto dto);

    /**
     * 根据用户id查询用户信息
     * @param id
     * @return
     */
    public Result<UserVo> getByUserId(Long id);

    /**
     * 修改用户信息
     * @param dto
     * @return
     */
    public Result edit(UserDto dto);

    /**
     * 获取用户点赞帖子id集合
     * @param id
     * @return
     */
    Result<List<Long>> getLove(Long id);

    /**
     * 获取用户名
     * @param id
     * @return
     */
    public String getUserName(Long id);

    /**
     * 用户条件查询
     * @param queryDto
     * @return
     */
    AjaxResult queryList(UserQueryDto queryDto);

    /**
     * 状态修改
     * @param userId
     * @param status
     */
    void status(Long userId, Integer status);


    /**
     * 手机号登录
     * @param dto
     * @return
     */
    Result<UserLoginVo> loginByPhone(UserAccountDto dto);

    /**
     * 手机号注册
     * @param dto
     * @return
     */
    Result registerByPhone(UserAccountDto dto);
}
